In an information processing system where a plurality of programs can run, that is, an information processing system which can execute by multi-tasking or in multi-processing, there is a prior art for securing the available capacity of a memory of the information processing system by terminating a running program whereby a memory consumed by the program is released.
For example, Patent Literature 1 discloses a conventional technology for releasing memory by selecting a program to be terminated based on an execution priority being set in the program, and a memory size consumed by the program.
In concrete terms, when an available capacity of a memory of an information processing system becomes a predetermined value or less, the operating system (OS) enables execution of the main memory release process. For example, if an available capacity of the memory is insufficient to startup a new program as a process, the main memory release process is activated.
In the main memory release process, a low priority process is selected out of the processes developed in the main memory, referring to the process management information managed by the OS, and the memory consumed by the selected process is released. This allows avoiding a state where a new high priority process cannot be started up because of a low priority process in-execution.
However in the case of the conventional configuration, a memory volume used by each process is stored in the process management information managed by the OS, but the location of the memory that each process is using is unknown. There is a memory where the power supply can be managed in block units. This kind of memory can supply power for each chip of the memory or for each bank in the memory. In the case of an information processing system which dynamically allocates memory, a memory area to be used for a process to run is normally allocated to a plurality of memory blocks, such as a plurality of memory chips or a plurality of memory banks. If the conventional configuration is used, it is unknown which location of a memory is being used by each process. Hence it is unknown how much of an area of the memory is released if the selected process is terminated.
In the case of the prior art, it is assumed that if memory is insufficient when a new process is started up, a memory allocated to a low priority process is released, and the released memory is used immediately. Therefore there is no need to know which memory block the process is using.
However in some cases, the user may want to shut OFF the power supply to some memory blocks out of a plurality of memory blocks, such as a plurality of memory chips or a plurality of memory banks, to implement power saving mode of the information processor. If the power supply to a memory block is shut OFF, data on this memory block is erased, so the data must be saved according to a proper procedure.
In the case of Codec which compresses or decompresses image data, it is desirable to use a continuous area in memory. However if a plurality of memory block areas are allocated to one process, each memory block area is released respectively even if this process is terminated, which makes it difficult to secure a continuous area.
With some recent information processors, each process and available capacity of memory is corresponded, and a process that can be terminated is specified according to the available capacity of the memory. With the conventional configuration, the consuming state of a memory in the information processing system cannot be known. Therefore it cannot be determined whether a process selected to be terminated can really be terminated depending on the current consuming state of the memory of the information processing system.